ChordWizard v0.35 for Buzz

1. What is it?

ChordWizard is a program, which allows to manipulate bmx- or bmw-files
created by Jeskola Buzz for speeding up the finding of 
chord progressions, creating more or less simple arpeggios or for use 
as a creative tool, so bigger harmonic arrangements can be realized 
in less time. The idea is simple, but effective. Mainly the program 
consists of a stepsequencer and a chordlist. 

2. The Chordlist

The lower left window holds the chordlist. It will remain empty, 
until you load a Song. From there you can select the chords, which
will be the base for the Buzzpatterns. 
Go through the list, select one or more chords(you can select a whole 
triads- or sevenths-group) and click on the button "->". 
Simply said,the entries in that window represents the patterns, 
which will be created. Remember: one pattern per entry.
If there are three entries e.g. c-maj, e-min and a-dim, three pattern
will be created. The data (notes) in the patterns you can define with
the stepsequencer. The notes of the chords and of the corresponding
scale are the raw-material for the step-sequencer.
By clicking on "<-" you can remove the selected chords. 
"Del All" deletes all chords from the list.
The line above shows the notes of the current selected chord.

3. The Stepsequencer

The stepsequencer represents a pattern of 32 lines  4 tracks, that 
means 128 cells, which are simple colored buttons. Because of the 
limited place,it is splitted in two blocks  16 lines. 
You can toggle a track on or off by clicking on the 
"Tracks playing:" - buttons below the chordlist-windows. 

Every cell (4 per patternline) represents one note-entry. 
Internal it is divided into two parts, which I call the state(color) 
and the note(text). 
There are four possible states, which can be chosen by clicking with
the left mousebutton on the cell.

You can choose between following states:

0. empty // the cell is grey - Nothing will be played or written 
to the Buzzpatterns.
1. on // the cell is green - A note will be played. Which note
I will explay later.
2. off//the cell is red - An off-event will be written to the 
Buzzpatterns.
3. random //the cell is blue - The state is defined randomly.
It can be either on or empty. 

If the state is defined as on or random, you can switch between 
different notes by rightclicking on the cell. They are shown
as the caption of the button. 
(Remember: state=color, note=text)

There are six notes possible:

1..4 - That is the index of a chordnote. 
For example: If there is the chord c-maj in your selection, and 
you've defined note as 1, in the corresponding Buzzpattern the 
note C-4 will be played. If note is 2, E-4 will be played. 
If the chord is a triad and note is set to 4, the first note of a 
chord will be played one octave higher than the baseoctave.

C - That means chordrandom-mode. One note out of the three or 
four notes of the corresponding chord  will be chosen randomly.

S - That means scalerandom-mode. One note out of the seven notes 
of the scale, the chord is belonging to, will be chosen randomly. 

If you've selected the chord from the <Extras> <Special>-group from 
the chordlist, the scalerandom-mode will behave like the 
chordrandom-mode. You can rightclick on a scale in the chordlist and 
set, which scale-notes will be used. 
For example: If you've selected d-min from d-Dorian and you don't
want the E to be played, when a cell is in scalerandom-mode, 
rightclick on d-Dorian and uncheck the checkbox left to the letter E.
The E will be forbidden for every cell in scalerandom-mode in every
pattern, which is selected from the d-Dorian-mode.

you can create a pattern randomly by clicking on "Random". 
"Clear" empties the pattern.

4. Creating the Buzzpatterns

After choosing the chords you want and defining a pattern in the 
stepsequencer, setting the baseoctave at the bottom of the 
main window, select a machine from the the machinelist in the 
upper left. For that machine the patterns will be created. 
Rightclicking on a machine opens a small infobox.
There stands, if the machine have a Note-parameter (if this isn't 
the case, nothing will happen.), and what type the Parameter is of.
Mmmhh how to explain it? 
There is a problem. If you are used to Buzz, you know the difference
between a global and a track-parameter. If the Note-parameter of
the machine is global, there's no problem. All notes of every 
track in the stepsequencer will be mapped to this one parameter. 
If there are more than one note defined in one line, the last one
will be written to the buzzpattern.
But if the note-parameter is a track-parameter, you have to take 
care, that the number of tracks in the stepsequencer isn't higher
than the maximum allowed tracks of the machine. The number of tracks
in the stepsequencer is number of tracks ChordWizard will create
for the selected machine.
If you don't know, what a track-parameter is: open Buzz, insert 
Matilde Tracker in the Machineview, switch to the Patternview and
press Ctrl and +. A track is added. Simply said, if there is
a number (beginning with 0) over it in the Patternview, it is a Track.
Press Ctrl and + until no more track is added. That's the way, how
you can find out, how many tracks are allowed by the machine.
Now load a Climox 303 in the machineview and try to add some tracks
to it in the patternview. You can't. 
The maximum number of tracks allowed by the Climox 303 is 1. And 
there lies the problem. ChordWizard doesn't know that and if you
try to create some pattern with four tracks (ChordWizard does it),
Climox 303 can't handle them. In the best case, it will only play the
first one, in the worst case Buzz will crash.
So if you aren't sure, look it up in Buzz!

If you're sure, that there will be no problem, you can click on the
beautiful icon between the two chordlist-windows. A dialogbox opens:

5. The ChordWizard

The dialogbox is divided into three sections:
Pattern, Waves and Misc.

5.1 Pattern:

length: How long should every created buzzpattern be? If you set more 
than 32 lines, the pattern defined in the stepsequencer will be 
repeated.This makes only sense, if you've defined some random-events.

notes as name: If unchecked, the created patterns will be named like 
you see it the chordlist(e.g. c-maj, e-min). If checked, they will be
named after the notes of the corresponding chord (e.g. CEG, EGB).

append patterns: If unchecked, the existing patterns of the selected
machine will be deleted. If checked, they will be appended. (Yes
I implemented a routine, to modify all corresponding sequences, so 
there will be no rubbish in the buzz-sequencer, because of the funny 
fact, that buzz sorts the pattern alphabetically and not how they
occur in the file.)

5.2 Waves:
Necessary, if you want to use sampletrackers.

Ignore: You have to know, how ChordWizard finds the wave-parameter 
of a machine. It simply goes through all parameters and the first, 
which is named 'wave' will be the wave-parameter. Till yet, it
seems to work, but there are some machines, which have a parameter
with name 'wave', which doesn't specify a sample in the wavetable
(e.g. whitenoise's syn). For those machine activate the ignore-
checkbox and ChordWizard won't try, to access it. (Or uncheck it
and produce some weird effects. But remember, that the maximum number
of waveforms of whitenoise's syn is, i believe, 4.)

one for all:
Every note will be played with the same sample from Buzz's wavetable.
Which sample will be used, you can define at the bottom of the main
window. 
The basewave is already in hexadecimal, so you don't have to 
convert it for your own.

one per track:
All notes in the first track will played with the sample defined by
the basewave. All notes in the second track will be played with
the sample defined by the basewave + 1. All notes in the third track...

one per note:
If the note beside the state in the stepsequencer is 1, the sample
defined by basewave will be used. If it is 2, the sample defined
by basewave+1 will be used...C and S means basewave+5 and basewave+6.

5.3. Misc:

Note Probability: If there are one or more states in 
random-mode, you can define here with what probability 
(in percent) the state will become on(note is played).
Remember, what you've learned about probability in school! 
If you set the probability to 25 percent, it doesn't mean, that every
fourth state will become on.

constant note: If checked, the notes of the scales and chords are 
ignored, and every time a note is played, it will be played with
the note, you can define below.
This is only sensefull, if you use ChordWizard as creative tool. If
you know how it works and how to arrange fixed with random states, you
can create fine and complex percussionlines. 

no note higher than: If checked, every note, which is higher than 
the note you can define below, will decreased by one octave so
many times until it is below the limit.
Example: If the Chord is C4 E4 G4 and you say, that no note should 
be higher than F4, the notes in the Buzzpatterns will be G3 C4 E4.
Remember that this isn't the original C major. I don't know how
it is called in English, doing so with a chord.

6.Presets:

To save time and nerves you can save the settings of the stepsequencer
and of the chordlist as presets. 
Click on the "Add"-button, and the current settings either of the 
stepsequencer or of the chordlist will be saved to the corresponding
presetslist. Renaming the preset is simple: edit the name in the
editctrl below the buttons. It should be saved automatically, when the
ctrl looses the focus. With the "Apply"-button, you can apply the current
preset and "Del" removes it from the list. 

7. Scanning machine-dlls:
Like m2buzz and buzz2midi ChordWizard needs a file named machine.ini, 
where the data needed for loading files is saved.
Use Menu <Machines> <Scan Gear-Directory> to create the machine.ini - file. The file isn't
compatible with m2buzz or buzz2midi.
Use menu <Machines> <Scan Single File> to scan only one machine and add it to machine.ini. 
Only scan if really necessary! Your computer might crash. (it works on my computer and it's 
really hard for one, to solve a problem, which he doesn't have.) I've tried to get almost
every published machine in the machine.ini delivered with the program, so you don't need
to create it for yourself.
If a machine is missing, the program will ask for a single scan during loading.

8. Why:
Q:Why do I have to load a Buzz-song instead of adding machines directly 
in ChordWizard?
A:There are several essential informations missing in a Buzz-song, and 
till yet I have found no way to get them from the machine-dlls.
The maximum number of tracks is one, but there is also some 
machine specific data, which is created by the machine itself. What the
data contains, is only known by the machine and its author.
And to make sure, that you can use almost every machine (sure, i've only
tested few of them), i decided, to go that way.

Q:Why is there no possibility to change the state-colours?
A:If there is the need for, i will add a colordialog, but red, green 
and blue seem to be the best colors for that purpose.

Mail to michaelnamdans@aol.com for bug-report. I've tested it on my 
computer with W2k and it seems to work well, but as everyone knows: the
microsoft-god is a really moody one, and as i could see, this isn't
just a joke.

9. Additional notes:
If you use ChordWizard, you do it on your own risk. if your computer 
explodes, don't give the responsibility to me!

10.Advertisment:
You can find my music (mainly composed with Buzz) on:
(nam dans)
http://www.meet-music.com/shared_elements/meetbox/show_meetbox.phtml?sid=0f5a5198d06cb67577d9e19eaf3325f9&sylangu=DE&status=S&bandnummer=0&u_id=66c17286539248b28843fbfcc1c14ffa

and
(heschl's gyri)
http://www.meet-music.com/shared_elements/meetbox/show_meetbox.phtml?sid=0f5a5198d06cb67577d9e19eaf3325f9&sylangu=DE&status=S&bandnummer=1&u_id=66c17286539248b28843fbfcc1c14ffa

and finally some tunes generated with a little bmx-hack, which 
was the father of ChordWizard (more functions, but unstable)
(binary)
http://www.meet-music.com/shared_elements/meetbox/show_meetbox.phtml?sid=0f5a5198d06cb67577d9e19eaf3325f9&sylangu=DE&status=S&bandnummer=2&u_id=66c17286539248b28843fbfcc1c14ffa


8888